Latency is time spent in an information transfer that is for activities other than the actual transferring of the information. Examples of latency in information transfers to a bus include time spent in requesting access to the bus, receiving and recognizing a grant to access the bus, and setting up the information transfer to the bus. The reduction of latency in information transfers to a bus is useful, because latency reduction generally provides improved system performance through more efficient bus utilization.
Pre-requests and bus parking are two techniques used to avoid latency associated with the process of requesting and being granted access to a bus. Using a pre-quest, access to the bus is requested and granted before, rather than after, a current operation ends so that a next operation may occur without a request/grant delay. Using bus parking, a grant to access a bus is automatically given to a bus master (such as a central processing unit) whenever the bus is idle (i.e., the bus is not currently being used and there is no pending request to access the bus), so the bus master doesn't have to perform a grant/request procedure as long as the grant is active.
Buffers are also commonly used so that a device doesn't have to wait on a busy or otherwise unavailable bus before transferring data. Instead, the device transfers data to the buffer and consequently, is free to perform other tasks. When the bus is subsequently available, logic associated with the buffer manages the transfer of data from the buffer to the bus in a manner transparent to the device. The use of buffers in this fashion is especially useful when the device transferring information to the bus is a central processing unit.
Although each of these techniques, individually and/or in combination with one another, substantially reduce latency in information transfers to a bus, additional improvements are generally desirable whenever possible to further improve system performance through improved bus utilization.